package com.master.rn;

import com.master.bd.Movimento_EstoqueBD;
import com.master.bd.Requisicao_CompraBD;
import com.master.ed.Movimento_EstoqueED;
import com.master.ed.Requisicao_CompraED;
import com.master.rl.Movimento_EstoqueRL;
import com.master.rl.Requisicao_CompraRL;
import com.master.root.Movimento_EstoqueBean;
import com.master.util.Excecoes;
import com.master.util.JavaUtil;
import com.master.util.bd.Transacao;
import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Movimento_EstoqueRN extends Transacao  {
  Movimento_EstoqueBD Movimento_EstoqueBD = null;


  public Movimento_EstoqueRN() {
  }


  public byte[] gera_Relatorio_Movimento_Estoque(Movimento_EstoqueED ed)throws Excecoes{

    //antes de invocar chamada ao relatorio deve-se
    //fazer validacoes de regra de negocio

    this.inicioTransacao();
    Movimento_EstoqueBD = new Movimento_EstoqueBD(this.sql);
    byte[] b = Movimento_EstoqueBD.gera_Relatorio_Movimento_Estoque(ed);
    this.fimTransacao(false);
    return b;

  }

  public void relMovimento(HttpServletRequest request, HttpServletResponse response) throws Excecoes {
	    try {
	    	this.inicioTransacao ();

	    	Movimento_EstoqueBean ed = new Movimento_EstoqueBean();
		    String oid_Estoque = request.getParameter("oid_Estoque");
		    if(JavaUtil.doValida(oid_Estoque))
		    	ed.setOID_Estoque(new Long(oid_Estoque));
		    String oid_Conta = request.getParameter("oid_Conta");
		    if(JavaUtil.doValida(oid_Conta))
		    	ed.setOid_Conta(new Long(oid_Conta));
	    	String dt_inicial = request.getParameter("FT_DT_Inicial");
	    	if(JavaUtil.doValida(dt_inicial))
	    		ed.setDT_Movimento(dt_inicial);
	    	String dt_final = request.getParameter("FT_DT_Final");
	    	if(JavaUtil.doValida(dt_final))
	    		ed.setDt_Stamp(dt_final);
	    	String DM_Movimento = request.getParameter("FT_DM_Movimento");
	    	if(JavaUtil.doValida(DM_Movimento))
	    		ed.setDM_Movimento(DM_Movimento);

	    	String DM_Layout = request.getParameter("FT_DM_Layout");
	    	if(JavaUtil.doValida(DM_Layout) && "1".equals(DM_Layout)){
	    		ArrayList lista = (ArrayList)new Movimento_EstoqueBean().getConsumo_Estoque(request);
			    new Movimento_EstoqueRL().relConsumo(lista, response, ed);
	    	} else {
	    		ArrayList lista = (ArrayList)new Movimento_EstoqueBean().getByOID_Estoque(request);
			    new Movimento_EstoqueRL().relMovimento(lista, response, ed);
	    	}
		    //libera conexao nao "commitando"
		    this.fimTransacao (false);
	    } catch (Exception e){
	    	e.printStackTrace();
	    }

  }

  public void relConferencia(HttpServletRequest request, HttpServletResponse response) throws Excecoes {
	    try {
	    	this.inicioTransacao ();

	    	Movimento_EstoqueBean ed = new Movimento_EstoqueBean();
		    String oid_Estoque = request.getParameter("oid_Estoque");
		    if(JavaUtil.doValida(oid_Estoque))
		    	ed.setOID_Estoque(new Long(oid_Estoque));
		    String oid_Conta = request.getParameter("oid_Conta");
		    if(JavaUtil.doValida(oid_Conta))
		    	ed.setOid_Conta(new Long(oid_Conta));
		    String dt_inicial = request.getParameter("FT_DT_Inicial");
	    	if(JavaUtil.doValida(dt_inicial))
	    		ed.setDT_Movimento(dt_inicial);
	    	String dt_final = request.getParameter("FT_DT_Final");
	    	if(JavaUtil.doValida(dt_final))
	    		ed.setDt_Stamp(dt_final);
//	    	String DM_Movimento = request.getParameter("FT_DM_Movimento");
//	    	if(JavaUtil.doValida(DM_Movimento))
//	    		ed.setDM_Movimento(DM_Movimento);
	    	ed.setDM_Movimento("TODOS");

	    	String DM_Layout = request.getParameter("FT_DM_Layout");

	    		ArrayList lista = (ArrayList)new Movimento_EstoqueBean().getByOID_EstoqueToConferencia(request);
			    new Movimento_EstoqueRL().relConferencia(lista, response, ed);

		    //libera conexao nao "commitando"
		    this.fimTransacao (false);
	    } catch (Exception e){
	    	e.printStackTrace();
	    }

}

}
